package com.tdam2013.grupo04;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

import com.tdam2013.grupo04.datos.DatabaseHelper;
import com.tdam2013.grupo04.networking.ConnectivityObserver;
import com.tdam2013.grupo04.networking.LiveConnectivityManager;
import com.tdam2013.grupo04.utils.Constantes;

@SuppressWarnings("deprecation")
public class MainActivity extends FragmentActivity implements ConnectivityObserver {

	private boolean bandera = true;
	private DatabaseHelper dbHelper;
	private int estadoConectividad = Constantes.estadoConectividad_noConectado;

	// FragmentManager fragmentManager;
	// FragmentTransaction fragmentTransaction;
	// android.app.Fragment fragmento1;
	// String estado;
	// Map<String,String> mapEstados= new HashMap<String,String>();

	/**
	 * Notifica de los cambios en la conectividad de datos moviles
	 */
	@Override
	public void manageNotification(boolean connectionEnabled) {
		int estado;
		StringBuilder mensajeConectividad = new StringBuilder();
		if (connectionEnabled == true) {
			estado = Constantes.estadoConectividad_conectado;
			mensajeConectividad.append(Constantes.conectividadOn);
		} else {
			estado = Constantes.estadoConectividad_noConectado;
			mensajeConectividad.append(Constantes.conectividadOff);
		}
		// Verifico si hubo cambios en la conectividad para informarlo al usuario
		if (estado != this.estadoConectividad) {
			Toast.makeText(this, mensajeConectividad, Toast.LENGTH_LONG).show();
			this.estadoConectividad = estado;
		}
		this.dbHelper.addRegistroConectividad(estado);
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.activity_main);
		this.dbHelper = new DatabaseHelper(this.getApplicationContext());
		// fragmentManager=getSupportFragmentManager();
		// fragmentTransaction= fragmentManager.beginTransaction();

		// FragmentoLlamadaOSmsRecientes fragmento1= new FragmentoLlamadaOSmsRecientes();
		// FragmentoLlamadaOSmsRecientes fragmento2= new FragmentoLlamadaOSmsRecientes();
		// FragmentoEmailRecientes fragmento3= new FragmentoEmailRecientes();
		// FragmentoServicioWebRecientes fragmento4= new FragmentoServicioWebRecientes();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = this.getMenuInflater();
		inflater.inflate(R.menu.menu, menu);
		return super.onCreateOptionsMenu(menu);

	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
			case R.id.menu_opcion:
				Intent i = new Intent(this, OpcionesActivity.class);
				this.startActivity(i);
				return true;
			case R.id.menu_login:
				Intent r = new Intent(this, LoginActivity.class);
				this.startActivity(r);
				return true;
			case R.id.menu_historial_conectividad:
				Intent intent = new Intent(this, HistorialConectividadActivity.class);
				this.startActivity(intent);
				return true;
			default:
				return super.onOptionsItemSelected(item);
		}
	}

	@Override
	protected void onPause() {
		super.onPause();
		LiveConnectivityManager.singleton(this).removeObserver(this);
	}

	@Override
	protected void onResume() {
		super.onResume();
		LiveConnectivityManager.singleton(this).addObserver(this);
		Toast.makeText(this, "INICIA LA APP ", Toast.LENGTH_SHORT).show();
		// estado= ((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).getEstado() ;

		// if(estado =="activado" && bandera==true)
		// {
		// Log.v("EstadoInMainActivity_Fragmento1",estado);
		// //setearEstadosDelMenu();
		// FragmentoLlamadaOSmsRecientes fragmento= new FragmentoLlamadaOSmsRecientes();
		// fragmentTransaction.add(R.id.fragmentoRecientes,fragmento);
		// bandera=false;
		// }
		// if(((Fragmento2)getSupportFragmentManager().findFragmentById(R.id.fragmento2)).getEstado() =="activado" && bandera==true)
		// {
		// Log.v("EstadoInMainActivity_Fragmento2",estado);
		// FragmentoLlamadaOSmsRecientes fragmento= new FragmentoLlamadaOSmsRecientes();
		// fragmentTransaction.add(R.id.fragmentoRecientes,fragmento);
		// bandera=false;
		// }
		// if(Fragmento3.estado=="activado" && bandera==true)
		// {
		// FragmentoEmailRecientes fragmento= new FragmentoEmailRecientes();
		// fragmentTransaction.add(R.id.fragmentoRecientes,fragmento);
		// bandera=false;
		// }
		// if(Fragmento4.estado=="activado" && bandera==true)
		// {
		// FragmentoServicioWebRecientes fragmento= new FragmentoServicioWebRecientes();
		// fragmentTransaction.add(R.id.fragmentoRecientes,fragmento);
		// bandera=false;
		// }
		// if(Fragmento5.estado=="activado" && bandera==true)
		// {
		// FragmentoLlamadaOSmsRecientes fragmento= new FragmentoLlamadaOSmsRecientes();
		// fragmentTransaction.add(R.id.fragmentoRecientes,fragmento);
		// bandera=false;
		// }
		// fragmentTransaction.addToBackStack(null);
		// fragmentTransaction.commit();
	}
	// private void setearEstadosDelMenu(){
	//
	// if(((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).getEstado()=="activado"){
	// ((Fragmento2)getSupportFragmentManager().findFragmentById(R.id.fragmento2)).setEstado("desactivado");
	// }
	// }

	// @Override
	// public void onFragmento1ClickClick() {
	// ImageButton imageButton = null;
	// ((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).llamada_click(imageButton.findViewById(R.id.Imagebutton01));
	//
	// ((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).setEstado("desactivado");
	// Log.v("desdeMainActivity>>",((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).getEstado());
	//
	// }
	// public void llamada_click(View view){
	//
	// }

	// @Override
	// public void onContactoAgendaClick(int posicion, String valor) {
	// //((Fragmento1)getSupportFragmentManager().findFragmentById(R.id.fragmento1)).
	// Contacto con = (Contacto) this.getListView().getAdapter().getItem(position);
	// Intent intent = new Intent(Intent.ACTION_CALL);
	// intent.setData(Uri.parse("tel:" + con.getNroTelefono(0)));
	// this.startActivity(intent);
	// this.baseDeDatos.addAcciones(con, 1, con.getNroTelefono(0));
	// }

}
